#include <iostream>
#include <future>
#include <thread>

int Add(int num1, int num2)
{
    std::cout << "into add\n";
    return num1 + num2;
}

int main()
{   
    // promise 是对结果的封装 将promise与future进行关联之后 在后面对promise对象进行设置数据 就可以在future对象中进行拿到
    std::promise<int> pro;
    // 将pro的结果与future进行关联
    std::future<int> res = pro.get_future();

    std::thread t1([&pro](){
        int sum = Add(11, 33);
        pro.set_value(sum);
    });

    std::cout << res.get() << std::endl;

    t1.join();

    return 0;
}